BigInteger এবং BigDecimal উভয়ই java.math প্যাকেজের ক্লাস, তবে তাদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে। BigInteger শুধু পূর্ণসংখ্যা (integer) ধারণ করে, অন্যদিকে BigDecimal দশমিক সংখ্যার (floating-point numbers) জন্য ব্যবহৃত হয় এবং এটি যেকোনো পরিমাণ সঠিকতার সাথে গণনা করতে সক্ষম।
যেহেতু BigInteger শুধুমাত্র পূর্ণসংখ্যা ধরে এবং BigDecimal দশমিক বা ভগ্নাংশ ধারণ করতে সক্ষম, তাই কখনও কখনও BigInteger কে BigDecimal এ রূপান্তর করতে হয় যখন আমাদের দশমিক মান বা সঠিকতা প্রয়োজন।
BigInteger থেকে BigDecimal এ রূপান্তর করা:
BigInteger ক্লাস থেকে BigDecimal ক্লাসে রূপান্তর করার জন্য BigDecimal(BigInteger) কনস্ট্রাক্টর ব্যবহার করা হয়। এটি একটি BigInteger অবজেক্টকে BigDecimal অবজেক্টে রূপান্তর করে, তবে মনে রাখতে হবে যে এই রূপান্তর পূর্ণসংখ্যা থেকে দশমিক সংখ্যা তে যাবে, এবং আপনি যেকোনো প্রয়োজনীয় সঠিকতা (scale) সেট করতে পারেন।
BigInteger কে BigDecimal এ রূপান্তর করার উদাহরণ:
import java.math.BigDecimal;
import java.math.BigInteger;
public class BigIntegerToBigDecimalConversion {
public static void main(String[] args) {
// Create a BigInteger object
BigInteger bigInteger = new BigInteger("123456789012345678901234567890");
// Convert BigInteger to BigDecimal
BigDecimal bigDecimal = new BigDecimal(bigInteger);
// Print the BigDecimal value
System.out.println("BigDecimal from BigInteger: " + bigDecimal);
// You can also specify scale (decimal places)
BigDecimal bigDecimalWithScale = new BigDecimal(bigInteger).setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("BigDecimal with scale: " + bigDecimalWithScale);
}
}
ব্যাখ্যা:
BigDecimal(BigInteger): এটি একটিBigIntegerঅবজেক্টকেBigDecimalএ রূপান্তরিত করে। তবে, এটি শুধুমাত্র পূর্ণসংখ্যা ধারণ করবে, অর্থাৎ দশমিকের পর কোনো স্থান থাকবে না।setScale(int scale, RoundingMode roundingMode): এখানেsetScale(2, BigDecimal.ROUND_HALF_UP)ব্যবহার করে আমরা BigDecimal অবজেক্টে দুইটি দশমিক স্থান নির্ধারণ করেছি এবং গোলকরণ মোডও নির্দিষ্ট করেছি।
আউটপুট:
BigDecimal from BigInteger: 123456789012345678901234567890
BigDecimal with scale: 123456789012345678901234567890.00
এখন একটি বাস্তব উদাহরণ দেখে নেওয়া যাক, যেখানে আপনি BigInteger থেকে BigDecimal তে রূপান্তর করবেন এবং এরপর তার সাথে গাণিতিক অপারেশন করবেন।
উদাহরণ: BigInteger থেকে BigDecimal রূপান্তর এবং গাণিতিক অপারেশন:
import java.math.BigDecimal;
import java.math.BigInteger;
public class BigIntegerToBigDecimalOperations {
public static void main(String[] args) {
// Create a BigInteger object
BigInteger bigInteger = new BigInteger("987654321098765432109876543210");
// Convert BigInteger to BigDecimal
BigDecimal bigDecimal = new BigDecimal(bigInteger);
System.out.println("BigDecimal from BigInteger: " + bigDecimal);
// Perform some mathematical operations with BigDecimal
BigDecimal sum = bigDecimal.add(new BigDecimal("1000.50"));
BigDecimal difference = bigDecimal.subtract(new BigDecimal("500"));
BigDecimal product = bigDecimal.multiply(new BigDecimal("2.5"));
BigDecimal quotient = bigDecimal.divide(new BigDecimal("3"), 2, BigDecimal.ROUND_HALF_UP); // 2 decimal places
System.out.println("Sum: " + sum);
System.out.println("Difference: " + difference);
System.out.println("Product: " + product);
System.out.println("Quotient: " + quotient);
}
}
ব্যাখ্যা:
BigDecimal.add(BigDecimal): দুটিBigDecimalযোগ করার জন্য ব্যবহৃত হয়।BigDecimal.subtract(BigDecimal): দুটিBigDecimalএর মধ্যে বিয়োগ করার জন্য ব্যবহৃত হয়।BigDecimal.multiply(BigDecimal): দুটিBigDecimalগুণ করার জন্য ব্যবহৃত হয়।BigDecimal.divide(BigDecimal, int, RoundingMode):BigDecimalএর ভাগফল নির্ধারণের জন্য ব্যবহৃত হয় এবং রাউন্ডিং মোড এবং স্কেল (ডেসিমাল পয়েন্ট) প্রদান করা হয়।
আউটপুট:
BigDecimal from BigInteger: 987654321098765432109876543210
Sum: 987654321098765432109876544210.50
Difference: 987654321098765432109876542710
Product: 2469135802746913580274691358025.00
Quotient: 329218107032921807369958847403.33
- BigInteger থেকে BigDecimal এ রূপান্তর করার জন্য
BigDecimal(BigInteger)কনস্ট্রাক্টর ব্যবহার করুন। এটি বড় পূর্ণসংখ্যাকে দশমিক মানে রূপান্তর করতে সহায়ক। - আপনি
setScale()ব্যবহার করে BigDecimal এর স্কেল এবং রাউন্ডিং মোড নির্ধারণ করতে পারেন, যেমন কতটি দশমিক স্থান প্রযোজ্য হবে। - BigDecimal আপনাকে বড় সংখ্যার গাণিতিক অপারেশনগুলো (যোগফল, বিয়োগফল, গুণফল, ভাগফল) নির্ভুলভাবে করতে সহায়তা করে, যা সাধারণ
intবাlongএর থেকে অনেক বেশি সক্ষম।
Read more